As computing devices have become more complex, overall system architecture has moved from systems in which a single computer controls less complex IO devices towards independently operating computers coordinating to perform IO. Individual IO peripherals can be controlled by a variety of transports, and in the traditional model each transport and peripheral has a function-specific driver to expose those capabilities to the system. For systems made up of multiple computers, the peripheral transport is relevant to the node that controls that specific peripheral, but all traffic between nodes must funnel through a link that is unlikely to be the same as the peripheral connection. In such systems, it may be desirable to abstract the specific transport being used and present all peripherals in a consistent manner.